//自定义数据类型
typedef char ListItem;

typedef struct alist *List;

typedef struct alist
{
    int n;          //表长
    int maxsize;    //表的最大长度
    ListItem table; //表元素数组
} Alist;

List ListInit(int size);                    /* 表结构初始化 */
int ListEmpty(List L);                      /* 测试表L是否为空 */
int ListLength(List L);                     /* 返回表L的长度 */
ListItem ListRetrieve(int k, List L);       /* 返回表L中k位置的元素 */
int ListLocate(ListItem x, List L);         /* 元素x在表L中的位置 */
void ListInsert(int k, ListItem x, List L); /* 在表L的位置k之后插入元素x */
ListItem ListDelete(int k, List L);         /* 从表L中删除位置k处的元素 */
void PrintList(List L);                     /* 按顺序依次输出线性表L的元素 */